home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d9xx / d910 / powercache.lha / PowerCache / Documentation / ARexx Examples / test.rexx < prev    next >
OS/2 REXX Batch file  |  1993-08-28  |  6KB  |  190 lines

  1. /* PowerCacheTest.rexx
  2.  *
  3.  * This script illustrates some of the features of PowerCache, and how
  4.  * to use ARexx to control the program. Not all commands are tested. For
  5.  * a complete description of PowerCache's ARexx interface, please refer
  6.  * to PowerCacheARexx.guide.
  7.  *
  8.  * Copyright (C) 1993, Michael Berg
  9.  * All Rights Reserved
  10.  */
  11.  
  12. /* Make sure we get results back from ARexx */
  13. OPTIONS RESULTS
  14.  
  15. /* Make sure PowerCache is on line */
  16. IF ~SHOW(P,'POWERCACHE') THEN DO
  17.     SAY 'PowerCache is not running -- Start the program and run this script again'
  18.     EXIT
  19. END
  20.  
  21. /* Talk to him */
  22. ADDRESS 'POWERCACHE'
  23.  
  24. /* Manifest constants */
  25. NL  = '0a'x
  26. TAB = '09'x
  27.  
  28. SAY '· Testing VERSION Command:' || NL
  29. Version
  30. SAY TAB || '· PowerCache returns "' || Result || '"'
  31. CALL PollReturn
  32.  
  33. SAY '· Testing CACHEABLE Command:' || NL
  34.  
  35. Cacheable STEM Result.
  36.  
  37. SAY TAB || 'List of Cacheable devices:' NL
  38. DO i = 0 TO Result.device.count-1
  39.     SAY TAB || i'.' Result.device.i Result.devname.i 'unit' Result.unit.i
  40. END
  41.  
  42. CALL PollReturn
  43.  
  44. SAY NL || '· Testing LISTCURRENTLYCACHED Command:' NL
  45. ListCurrentlyCached STEM Result.
  46.  
  47. SAY TAB || 'Device' || TAB || 'Organization' || TAB || 'Type' || TAB || 'Algo' NL
  48.  
  49. DO i = 0 TO Result.device.count-1
  50.     SAY TAB || i'.'        Result.device.i,
  51.                     '  '|| Result.sets.i Result.lines.i result.prefetch.i,
  52.                     TAB || Result.type.i,
  53.                     TAB || Result.algorithm.i
  54.  
  55.     /* Also available, but omitted for simplicity:
  56.      *
  57.      * Result.purgetime.i
  58.      * Result.freeafterpurge.i 
  59.      * Result.cachebuffer.i 
  60.      * Result.buffersize.i
  61.      * Result.overhead.i
  62.      *
  63.      * (Please refer to PowerCacheARexx.guide for an explanation of these
  64.      * variables)
  65.      */
  66. END
  67.  
  68. CALL PollReturn
  69.  
  70. /* We're going to use DF0: as an example in the following sections. So we
  71.  * have to make sure the user is not already caching this device (and remove
  72.  * it if he is)
  73.  */
  74.  
  75. GetCacheInfo 'DF0:'
  76.  
  77. IF RC = 0 THEN DO
  78.     RemoveCache 'DF0:'
  79.     SAY NL || '(Removed Cache on DF0: to simplify the following ARexx example'||NL||'code sections)'
  80.     CALL PollReturn
  81. END
  82.  
  83. SAY '· Testing ADDCACHE Command' || NL
  84.  
  85. AddCache 'DF0:' 8 32 4 'R/W' 'LRU' 2 'FASTMEM'
  86.  
  87. IF RC ~= 0 THEN DO
  88.   SAY TAB || 'Could not add a 512k cache to DF0:' || NL,
  89.       TAB || 'PowerCache says: "' || RC2 || '"'
  90. END
  91. ELSE DO
  92.    SAY TAB || 'Successfully added a 8 x 32 x 4 cache (512k) to DF0:'
  93.  
  94.    CALL PollReturn
  95.  
  96.    SAY TAB || '· Testing GETCACHEINFO Command on DF0:' || NL
  97.    GetCacheInfo 'DF0:' STEM Result.
  98.    IF RC = 0 THEN DO
  99.        SAY       TAB || TAB || 'Sets      =' Result.sets,
  100.            NL || TAB || TAB || 'Lines     =' Result.lines,
  101.            NL || TAB || TAB || 'Prefetch  =' Result.prefetch || NL,
  102.            NL || TAB || TAB || 'Type      =' Result.type,
  103.            NL || TAB || TAB || 'Algorithm =' Result.algorithm,
  104.            NL || TAB || TAB || 'Purgetime =' Result.purgetime,
  105.            NL || TAB || TAB || 'FreePurge? ' Result.freeafterpurge || NL,
  106.            NL || TAB || TAB || 'CacheBuffer =' Result.cachebuffer,
  107.            NL || TAB || TAB || 'BufferSize  =' Result.buffersize,
  108.            NL || TAB || TAB || 'Overhead    =' Result.overhead
  109.    END
  110.    ELSE SAY TAB || TAB || 'Could not GETCACHEINFO for DF0:' || NL,
  111.             TAB || TAB || 'PowerCache says: "' || RC2 || '"'
  112.  
  113.    CALL PollReturn
  114.  
  115.    SAY TAB || '· Testing REMOVECACHE Command'
  116.    RemoveCache 'DF0:'
  117.    IF RC ~= 0 THEN DO
  118.        SAY TAB || TAB || 'Could not remove cache on DF0:' || NL,
  119.        TAB || TAB || 'PowerCache says: "' || RC2 || '"'
  120.    END
  121.    ELSE SAY TAB || TAB || 'Successfully removed cache from DF0:'
  122. END
  123.  
  124. CALL PollReturn
  125.  
  126. SAY '· Testing GETDEVICEINFO Command for DF0:' || NL
  127.  
  128. GetDeviceInfo 'DF0:' STEM Result.
  129. IF RC == 0 THEN DO
  130.     SAY TAB || 'Logical Drive            =' Result.logicaldrive || NL,
  131.         TAB || 'Devicename               =' Result.devicename || NL,
  132.         TAB || 'Unit                     =' Result.unit || NL,
  133.         TAB || 'Task TCB                 =' Result.tasktcb || NL,
  134.         TAB || 'Sectorsize               =' Result.sectorsize || NL,
  135.         TAB || 'Surfaces                 =' Result.surfaces || NL,
  136.         TAB || 'Blocks per Track         =' Result.blockspertrack || NL,
  137.         TAB || 'Capacity                 =' Result.capacity || NL,
  138.         TAB || 'Reserved (start)         =' Result.reservedstart || NL,
  139.         TAB || 'Reserved (end)           =' Result.reservedend || NL,
  140.         TAB || 'Interleave               =' Result.interleave || NL,
  141.         TAB || 'Low Cylinder             =' Result.lowcyl || NL,
  142.         TAB || 'High Cylinder            =' Result.highcyl || NL,
  143.         TAB || 'Initial DOS Buffers      =' Result.initialdosbuffers || NL,
  144.         TAB || 'Buffer Memory Type       =' Result.bufmemtype || NL,
  145.         TAB || 'Max Transfer per Request =' Result.maxtransfer || NL,
  146.         TAB || 'Address Mask             =' Result.mask || NL,
  147.         TAB || 'Boot Priority            =' Result.bootpri || NL,
  148.         TAB || 'File System              =' Result.filesystem || NL,
  149.         TAB || 'Boot Blocks              =' Result.bootblocks || NL
  150. END
  151. ELSE SAY TAB || 'Could not GETDEVICEINFO for DF0:' || NL,
  152.          TAB || 'PowerCache says: "' || RC2 || '"'
  153.  
  154. CALL PollReturn
  155.  
  156. SAY '· Testing SHOW/HIDE' || NL
  157. SAY TAB || '· SHOW'
  158. Show
  159. CALL PollReturn
  160. SAY TAB || '· HIDE'
  161. Hide
  162. CALL PollReturn
  163. Show
  164.  
  165. SAY '· Testing SETENABLEKEY'
  166.  
  167. SetEnableKey '"control shift alt b"'
  168. IF RC = 0 THEN DO
  169.     SAY TAB || 'Managed to change the hotkey from "' || Result || '"' || NL,
  170.         TAB || 'to "control shift alt b".'
  171.  
  172.     /* Double quoting is necessary - and this is how you do it */
  173.     OldKey = '"' || Result || '"'
  174.  
  175.     CALL PollReturn
  176.  
  177.     SAY TAB || 'Restoring hotkey to original setting'
  178.     SetEnableKey OldKey
  179.  
  180.     IF RC ~= 0 THEN SAY TAB || 'Failed -- PowerCache says: "' || RC2 || '"'
  181. END
  182. ELSE SAY TAB || 'Could not change hotkey' || NL,
  183.          TAB || 'PowerCache says: "' || RC2 || '"'
  184.  
  185. EXIT
  186.  
  187. PollReturn:
  188.     SAY NL || 'PRESS RETURN'
  189.     PULL Anything
  190.